'use strict'

// const jsosort = require('jsosort')
// const sha1 = require('sha1')

// module.exports = function init(obj) {
//   obj = jsosort(obj)
//   obj = JSON.stringify(obj, (key, val) => {
//     return val instanceof RegExp ? String(val) : val
//   })

//   return sha1(obj)
// }

const crypto = require('crypto')

module.exports = function init(obj) {
  obj = JSON.stringify(obj, (key, val) => {
    return val instanceof RegExp ? String(val) : val
  })

  return md5(obj)
}

function md5(str) {
  str = str + ''
  let crypto_md5 = crypto.createHash('md5')
  crypto_md5.update(str, 'utf8') // 编码
  return crypto_md5.digest('hex')
}
